我有一个带有vec3b值的cv :: Mat文件.这些值是图像中的颜色.我想改变那张图片中的一些颜色.
我知道正常矩阵操作的setTo()函数,但我如何将它用于我的Mat文件?
我试过这样的事情:
image = image.setto(Vec3b(0,0,0), image == Vec3b(255,0,0))
谢谢!
给定图像image
,我们想要找到image
等于的所有像素Scalar(255,0,0)
,然后将这些像素设置为Scalar(0,0,0)
.
首先我们需要获得mask
,mask
如果相应的位置image
等于Scalar(255,0,0)
,则将位置设置为255 ,否则将其设置为0.这可以通过inRange()
函数来实现.
Mat mask; inRange(image, Scalar(255,0,0), Scalar(255,0,0), mask);
现在应用setTo()
函数image
.
image.setTo(Scalar(0,0,0), mask);